package com.lu.component.rpc.model.enums;

/**
 * 常用Content-Type类型枚举
 *
 * @author: zhanglu
 * @date: 2023/9/4 15:58
 * @modify: 修改人信息, 修改内容 2023/9/4 15:58
 */
public enum RpcContentTypeEnum {

    /**
     * 根据请求参数定义，自动计算
     *  - post请求，无文件的情况采用json
     *  - post请求，有文件的情况采用from
     *  - get请求，采用from
     */
    AUTO("-"),

    /**
     * 标准表单编码，当action为get时候，浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串（name1=value1&amp;name2=value2…）
     */
    FORM_URLENCODED("application/x-www-form-urlencoded"),
    /**
     * 文件上传编码，浏览器会把整个表单以控件为单位分割，并为每个部分加上Content-Disposition，并加上分割符(boundary)
     */
    MULTIPART("multipart/form-data"),
    /**
     * Rest请求JSON编码
     */
    JSON("application/json"),
    /**
     * Rest请求XML编码
     */
    XML("application/xml"),
    /**
     * text/plain编码
     */
    TEXT_PLAIN("text/plain"),
    /**
     * Rest请求text/xml编码
     */
    TEXT_XML("text/xml"),
    /**
     * text/html编码
     */
    TEXT_HTML("text/html");

    private final String value;


    /**
     * 构造
     * @param value ContentType值
     */
    RpcContentTypeEnum(String value) {
        this.value = value;
    }

    /**
     * 获取value值
     *
     * @return value值
     * @since 5.2.6
     */
    public String getValue() {
        return value;
    }

}
